package com.wormhole.wormholemanagement.utils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MultiPersonInfoExtractor {

   /**
           * 从字符串中提取多个人物信息，存储到Map列表中
     * @param input 包含多个人物信息的字符串
     * @return 包含人物信息的Map列表
     */
    public static List<Map<String, String>> extractPersonsToMap(String input) {
        List<Map<String, String>> personMaps = new ArrayList<>();

        // 正则表达式匹配单个人物信息
        String regex = "([^（]+)（([^，]+)，([^）]+)）";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        // 循环查找所有匹配项
        while (matcher.find()) {
            // 创建Map存储单个人的信息
            Map<String, String> personMap = new HashMap<>();

            // 处理姓名：去除前后空格和多余的逗号
            String name = matcher.group(1).trim()
                    .replaceAll(",+", "")  // 移除所有逗号
                    .replaceAll("^\\s+|\\s+$", "");  // 再次去除空格

            // 处理可能的空姓名
            if (name.isEmpty()) {
                name = "未知姓名";
            }

            String position = matcher.group(2).trim();
            String location = matcher.group(3).trim();

            // 将信息存入Map
            personMap.put("name", name);
            personMap.put("position", position);
            personMap.put("location", location);

            // 将Map添加到列表
            personMaps.add(personMap);
        }

        return personMaps;
    }
}
